Parseを使ってみる


概要

BaaS(Backend as a Service) の、Parseを使って遊んでみる。

https://www.parse.com/


BaaSって

Parseの場合、WebServiceの「保存」Persistentを勝手に旨い事やってくれる化・自動化したもの。

iOS/Androidから通信するだけで、特定のKVSとしてデータを保持してくれる。


Parseの場合、データのPersistent以外にも、

・Web側データの管理、表示(課金にひもづくからそりゃあね

・PushNotification

にも対応している。



導入

クイックスタート

https://www.parse.com/apps/quickstart

から、

スクリーンショット 2012-03-28 10.18.44.png

適当に、Parse対応したいアプリの形式を選ぶ

(上だとExisting iOS を選んでいるけど、この記事では New iOS を選択した。)

ParseStarterProject というiOS Project一式がDLされるので、Xcodeで開く。

見てみると、いろいろFWつかってある。あとQuartzCoreはみ出てる。

left.png

チュートリアルどおり、ParseStarterProjectAppDelegate.m > didFinishLaunch にメソッド追加

スクリーンショット 2012-03-27 8.26.54.png

同梱の ParseStarterProjectViewController.h にimport追加

スクリーンショット 2012-03-27 8.27.43.png

ParseStarterProjectViewController.m の viewDidLoadに下記を追加

通信用のオブジェクトを作成、オブジェクト(key-value)をセットしてsaveで、Parse側に保存される。

スクリーンショット 2012-03-27 8.28.12.png

起動してみたところ

スクリーンショット 2012-03-28 10.33.59.png

チュートリアルに戻り、Testってボタンがあるので押すと、さきほど送り込んだKey-Valueが表示される。

スクリーンショット 2012-03-27 8.28.38.png

こういうチュートリアル良いですね。やってた事の意味が分かりやすい。



疑問

通信に失敗したらどうなっちゃうの?


たとえば

[testObject save]


このメソッドはbool値を返してきてて、同期的に通信を行い、正否を返してくる。

通信Offってやってみたらfalse帰ってきた。スクリーンショット 2012-03-28 10.38.47.png

数回リトライし、理由を出力

理由取得の方法は、必要があったら調べて書く。かんたんぽい。


あと、RemoteNotification出して教えてくれるっぽい。実機なら試せる。



使用感未確認だけど楽しそうだなーと思った部分

saveInBackground

saveInBackgroundWithTarget

saveInBackgroundWithBlock

saveEventually

fetch


delete


名前見てるだけで「ヘェ~」ってなるメソッドがいっぱいある。ステキ。



とりあえずiOSだけで成立するようなクライアント限定系のアプリ/サービスをさくっと作る分には良さげ。